<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.14/vue.js"></script>
</head>
<body>
    <div id="app">
        <tom></tom> 
        <jerry></jerry>
    </div>
</body>
<script>
//**状态管理模式**。它采用**`集中式`**存储管理应用的所有组件的状态，并以相应的规则保证状态以一种**`可预测`**的方式发生变化。
// 定义状态管理器
let store = new Vue({
    data(){
        return {
            count: 100 //集中式管理状态-把组件通信的数据放到store(状态管理器)
        }
    }
    //`可预测`**的方式发生变化-需要在状态管理器当中,定义方法,调用它-,让状态管理器自己修改数据
})    
Vue.component('Tom', {
    template: `
        <div>Tom组件<button @click="handleAdd">+1</button></div>
    `,
    methods: {
        handleAdd(){
            store.count++
        }
    }
})   
Vue.component('Jerry', {
    template: `
        <div>Jerry组件-{{count}}</div>
    `,
    computed: {
        count(){
            return store.count
        }
    }
})    
let vm = new Vue({
    el: '#app',
    data(){
        return {
           
        }
    }
})
</script>
</html>